home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / Tool Chest / Development Tools & Languages / Macintosh Common Lisp Related / interfaces / QuickTime™ 1.0 Interfaces / ImageCompression.lisp < prev    next >
Encoding:
Text File  |  1993-09-16  |  35.1 KB  |  671 lines  |  [TEXT/CCL2]

  1.  
  2. (in-package :TRAPS)
  3. ; Created: Tuesday, August 13, 1991 at 4:31 PM
  4. ;  ImageCompression.p
  5. ;  Pascal Interface to the Macintosh Libraries
  6. ;  Copyright Apple Computer, Inc. 1991
  7. ;  All rights reserved
  8.  
  9. ; $IFC UNDEFINED UsingIncludes
  10. ; $SETC UsingIncludes := 0
  11. ; $ENDC
  12.  
  13. ; $IFC NOT UsingIncludes
  14.  
  15. ; $ENDC
  16.  
  17. ; $IFC UNDEFINED UsingImageCompression
  18. ; $SETC UsingImageCompression := 1
  19.  
  20. ; $I+
  21. ; $SETC ImageCompressionIncludes := UsingIncludes
  22. ; $SETC UsingIncludes := 1
  23. ; $IFC UNDEFINED UsingQuickDraw
  24.  
  25. (require-interface 'QUICKDRAW)  ; $I $$Shell(PInterfaces)QuickDraw.p
  26. ; $ENDC
  27. ; $IFC UNDEFINED UsingQDOffscreen
  28.  
  29. (require-interface 'QDOFFSCREEN); $I $$Shell(PInterfaces)QDOffscreen.p
  30. ; $ENDC
  31. ; $IFC UNDEFINED UsingTypes
  32.  
  33. (require-interface 'TYPES)      ; $I $$Shell(PInterfaces)Types.p
  34. ; $ENDC
  35. ; $IFC UNDEFINED UsingComponents
  36.  
  37. (require-interface 'COMPONENTS) ; $I $$Shell(PInterfaces)Components.p
  38. ; $ENDC
  39. ; $IFC UNDEFINED UsingStandardFile
  40.  
  41. (require-interface 'STANDARDFILE); $I $$Shell(PInterfaces)StandardFile.p
  42. ; $ENDC
  43. ; $SETC UsingIncludes := ImageCompressionIncludes
  44.  
  45. (defconstant $gestaltCompressionMgr :|icmp|)
  46.  
  47. ;  These are the bits that are set in the Component flags, and also in the codecInfo struct. 
  48.  
  49. (defconstant $codecInfoDoes1 #X1);  codec can work with 1-bit pixels 
  50. (defconstant $codecInfoDoes2 #X2);  codec can work with 2-bit pixels 
  51. (defconstant $codecInfoDoes4 #X4);  codec can work with 4-bit pixels 
  52. (defconstant $codecInfoDoes8 #X8);  codec can work with 8-bit pixels 
  53. (defconstant $codecInfoDoes16 #X10);  codec can work with 16-bit pixels 
  54. (defconstant $codecInfoDoes32 #X20);  codec can work with 32-bit pixels 
  55. (defconstant $codecInfoDoesDither #X40);  codec can do ditherMode 
  56. (defconstant $codecInfoDoesStretch #X80);  codec can stretch to arbitrary sizes 
  57. (defconstant $codecInfoDoesShrink #X100);  codec can shrink to arbitrary sizes 
  58. (defconstant $codecInfoDoesMask #X200);  codec can mask to clipping regions 
  59.  
  60. (defconstant $codecInfoDoesTemporal #X400);  codec can handle temporal redundancy 
  61.  
  62. (defconstant $codecInfoDoesDouble #X800);  codec can stretch to double size exactly 
  63. (defconstant $codecInfoDoesQuad #X1000);  codec can stretch to quadruple size exactly 
  64. (defconstant $codecInfoDoesHalf #X2000);  codec can shrink to half size 
  65. (defconstant $codecInfoDoesQuarter #X4000);  codec can shrink to quarter size 
  66.  
  67. (defconstant $codecInfoDoesRotate #X8000);  codec can rotate on decompress 
  68. (defconstant $codecInfoDoesHorizFlip #X10000);  codec can flip horizontally on decompress 
  69. (defconstant $codecInfoDoesVertFlip #X20000);  codec can flip vertically on decompress 
  70. (defconstant $codecInfoDoesSkew #X40000);  codec can skew on decompress 
  71. (defconstant $codecInfoDoesBlend #X80000);  codec can blend on decompress 
  72. (defconstant $codecInfoDoesWarp #X100000);  codec can warp arbitrarily on decompress 
  73. (defconstant $codecInfoDoesRecompress #X200000);  codec can recompress image without accumulating errors 
  74. (defconstant $codecInfoDoesSpool #X400000);  codec can spool image data 
  75.  
  76. (defconstant $codecInfoDepth1 #X1);  compressed data at 1 bpp depth available 
  77. (defconstant $codecInfoDepth2 #X2);  compressed data at 2 bpp depth available 
  78. (defconstant $codecInfoDepth4 #X4);  compressed data at 4 bpp depth available 
  79. (defconstant $codecInfoDepth8 #X8);  compressed data at 8 bpp depth available 
  80. (defconstant $codecInfoDepth16 #X10);  compressed data at 16 bpp depth available 
  81. (defconstant $codecInfoDepth32 #X20);  compressed data at 32 bpp depth available 
  82. (defconstant $codecInfoDepth24 #X40);  compressed data at 24 bpp depth available 
  83. (defconstant $codecInfoDepth33 #X80);  compressed data at 1 bpp monochrome depth  available 
  84. (defconstant $codecInfoDepth34 #X100);  compressed data at 2 bpp grayscale depth available 
  85. (defconstant $codecInfoDepth36 #X200);  compressed data at 4 bpp grayscale depth available 
  86. (defconstant $codecInfoDepth40 #X400);  compressed data at 8 bpp grayscale depth available 
  87. (defconstant $codecInfoStoresClut #X800);  compressed data can have custom cluts 
  88. (defconstant $codecInfoDoesLossless #X1000);  compressed data can be stored in lossless format 
  89.  
  90. (defconstant $codecFlagUseImageBuffer #X1);  (input) allocate buffer for whole image on decompress sequence 
  91. (defconstant $codecFlagUseScreenBuffer #X2);  (input) allocate buffer for screen on decompress sequence for faster updates 
  92. (defconstant $codecFlagUpdatePrevious #X4);  (input) udate previous buffer on compress sequence 
  93. (defconstant $codecFlagNoScreenUpdate #X8);  (input) dont update screen, but do update image buffer if allocated 
  94. (defconstant $codecFlagWasCompressed #X10);  (input) hint to compressor that image was previously compressed 
  95. (defconstant $codecFlagDontOffscreen #X20);  (input) return error instead of automatically going offscreen 
  96. (defconstant $codecFlagUpdatePreviousComp #X40);  (input) udate previous buffer on compress sequence 
  97. (defconstant $codecFlagForceKeyFrame #X80);  (input) when sent to CompressSequenceFrame, forces that frame to be a key frame 
  98. (defconstant $codecFlagOnlyScreenUpdate #X100);  (input) only update screen from 
  99. (defconstant $codecFlagLiveGrab #X200);  (input) data being compressed is from live source (speed is critical) 
  100.  
  101. (defconstant $codecFlagUsedNewImageBuffer #X4000);  (output) indicates that image buffer was first used on this decompress sequence 
  102. (defconstant $codecFlagUsedImageBuffer #X8000);  (output) indicates that image buffer was used on this decompress sequence 
  103.  
  104. (defconstant $codecErr -8960)   ;  the codec returned an error 
  105. (defconstant $noCodecErr -8961) ;  the specified codec could not be found 
  106. (defconstant $codecUnimpErr -8962);  this feature is not implemented by the specified codec 
  107. (defconstant $codecSizeErr -8963)
  108. (defconstant $codecScreenBufErr -8964);  the screen buffer could not be allocated 
  109. (defconstant $codecImageBufErr -8965);  the image buffer could not be allocated 
  110. (defconstant $codecSpoolErr -8966);  the compressed data must be in memory (spooling did not work) 
  111. (defconstant $codecAbortErr -8967);  the operation was aborted by the progress proc 
  112. (defconstant $codecWouldOffscreenErr -8968);  an offscreen access would have been used, but wasn't allowed because codecFlagDontOffscreen was set 
  113. (defconstant $codecBadDataErr -8969);  compressed data was found to have inconsistencies 
  114. (defconstant $codecDataVersErr -8970);  compressed data was of a format version that codec couldn't handle 
  115. (defconstant $codecConditionErr -8972);  codec can not do requested operation 
  116. (defconstant $codecOpenErr -8973);  the codec  could not be opened 
  117.  
  118. (defconstant $codecMinimumDataSize 32768);  The minimum data size for spooling in or out data 
  119.  
  120. (defconstant $compressorComponentType :|imco|);  the type for "Components" which compress images 
  121. (defconstant $decompressorComponentType :|imdc|);  the type for "Components" which decompress images 
  122.  
  123. (def-mactype :COMPRESSORCOMPONENT (find-mactype :POINTER));  a Component which compresses images 
  124. (def-mactype :DECOMPRESSORCOMPONENT (find-mactype :POINTER));  a Component which decompresses images 
  125. (def-mactype :CODECCOMPONENT (find-mactype :POINTER));  a Component which decompresses or compresses images 
  126.  
  127. (def-mactype :SBOOLEAN (find-mactype :SIGNED-INTEGER));  to make sure stack frames are right 
  128.  
  129. (def-mactype :CODECTYPE (find-mactype :OSTYPE));  type descriptor for codecs i.e: 'appl','jpeg','rle ' 
  130.  
  131. (def-mactype :CODECFLAGS (find-mactype :SIGNED-INTEGER));  flags for codec manager calls 
  132.  
  133. (def-mactype :CODECQ (find-mactype :SIGNED-LONG))
  134. (def-mactype :DATAPROCPTR (find-mactype :POINTER))
  135. (def-mactype :FLUSHPROCPTR (find-mactype :POINTER))
  136.  
  137. (defconstant $codecLosslessQuality #X400)
  138. (defconstant $codecMaxQuality #X3FF)
  139. (defconstant $codecMinQuality #X0)
  140. (defconstant $codecLowQuality #X100)
  141. (defconstant $codecNormalQuality #X200)
  142. (defconstant $codecHighQuality #X300)
  143.  
  144. (defconstant $anyCodec 0)       ;  take first working codec of given type 
  145. (defconstant $bestSpeedCodec -1);  take fastest codec of given type 
  146. (defconstant $bestFidelityCodec -2);  take codec which is most accurate
  147. (defconstant $bestCompressionCodec -3);  take codec of given type that is most accurate 
  148.  
  149. (defconstant $codecCompletionSource 1);  asynchronous codec is done with source data  
  150. (defconstant $codecCompletionDest 2);  asynchronous codec is done with destination data  
  151.  
  152. (def-mactype :COMPLETIONPROCPTR (find-mactype :POINTER))
  153.  
  154. (defconstant $codecProgressOpen 0)
  155. (defconstant $codecProgressUpdatePercent 1)
  156. (defconstant $codecProgressClose 2)
  157.  
  158. (def-mactype :PROGRESSPROCPTR (find-mactype :POINTER))
  159.  
  160. (def-mactype :IMAGESEQUENCE (find-mactype :SIGNED-LONG))
  161.  
  162. (def-mactype :PROGRESSPROCRECORDPTR (find-mactype :POINTER))
  163. (defrecord ProgressProcRecord 
  164.    (progressProc :POINTER)
  165.    (progressRefCon :SIGNED-LONG)
  166.    )
  167.  
  168. (def-mactype :COMPLETIONPROCRECORDPTR (find-mactype :POINTER))
  169. (defrecord CompletionProcRecord 
  170.    (completionProc :POINTER)
  171.    (completionRefCon :SIGNED-LONG)
  172.    )
  173.  
  174. (def-mactype :DATAPROCRECORDPTR (find-mactype :POINTER))
  175. (defrecord DataProcRecord 
  176.    (dataProc :POINTER)
  177.    (dataRefCon :SIGNED-LONG)
  178.    )
  179.  
  180. (def-mactype :FLUSHPROCRECORDPTR (find-mactype :POINTER))
  181. (defrecord FlushProcRecord 
  182.    (flushProc :POINTER)
  183.    (flushRefCon :SIGNED-LONG)
  184.    )
  185.  
  186. ;  
  187. ;     The ImageDescription is private data which is produced when an image or sequence 
  188. ;     is compressed. It fully describes the format of the compressed data.
  189.  
  190. (def-mactype :IMAGEDESCRIPTIONPTR (find-mactype :POINTER))
  191. (def-mactype :IMAGEDESCRIPTIONHANDLE (find-mactype :HANDLE))
  192. (defrecord (ImageDescription :handle) 
  193.    (idSize :SIGNED-LONG)        ;  total size of ImageDescription including extra data ( CLUTs and other per sequence data 
  194.    (cType :OSTYPE)              ;  what kind of codec compressed this data 
  195.    (resvd1 :SIGNED-LONG)        ;  reserved for apple use 
  196.    (resvd2 :SIGNED-INTEGER)     ;  reserved for apple use 
  197.    (dataRefIndex :SIGNED-INTEGER);  set to zero 
  198.    (version :SIGNED-INTEGER)    ;  which version is this data 
  199.    (revisionLevel :SIGNED-INTEGER);  what version of that codec did this 
  200.    (vendor :SIGNED-LONG)        ;  whose  codec compressed this data 
  201.    (temporalQuality :SIGNED-LONG);  what was the temporal quality factor          
  202.    (spatialQuality :SIGNED-LONG);  what was the spatial quality factor          
  203.    (width :SIGNED-INTEGER)      ;  how many pixels wide is this data 
  204.    (height :SIGNED-INTEGER)     ;  how many pixels high is this data 
  205.    (hRes :SIGNED-LONG)          ;  horizontal resolution 
  206.    (vRes :SIGNED-LONG)          ;  vertical resolution 
  207.    (dataSize :SIGNED-LONG)      ;  if known, the size of data for this image descriptor 
  208.    (frameCount :SIGNED-INTEGER) ;  number of frames this description applies to 
  209.    (name (:ARRAY :CHARACTER 32));  name of codec ( in case not installed ) 
  210.    (depth :SIGNED-INTEGER)      ;  what depth is this data (1-32) or ( 33-40 grayscale ) 
  211.    (clutID :SIGNED-INTEGER)     ;  clut id or if 0 clut follows  or -1 if no clut 
  212.    )
  213.  
  214. ;  
  215. ;     The CodecInfo is the information returned as the codecInfo struct by a codec Component
  216. ;     to the codec manager or to the caller. It is specific to the particular codec
  217. ;     implementation and not to the codec type.
  218.  
  219. (defrecord CodecInfo 
  220.    (typeName (:ARRAY :CHARACTER 32));  name of the codec type i.e.: 'Apple Image Compression' 
  221.    (version :SIGNED-INTEGER)    ;  version of the codec data that this codec knows about 
  222.    (revisionLevel :SIGNED-INTEGER);  revision level of this codec i.e: 0x00010001 (1.0.1) 
  223.    (vendor :SIGNED-LONG)        ;  Maker of this codec i.e: 'appl' 
  224.    (decompressFlags :SIGNED-LONG);  codecInfo flags for decompression capabilities 
  225.    (compressFlags :SIGNED-LONG) ;  codecInfo flags for compression capabilities 
  226.    (formatFlags :SIGNED-LONG)   ;  codecInfo flags for compression format details 
  227.    (compressionAccuracy :CHARACTER);  measure (1-255) of accuracy of this codec for compress (0 if unknown) 
  228.    (decompressionAccuracy :CHARACTER);  measure (1-255) of accuracy of this codec for decompress (0 if unknown) 
  229.    (compressionSpeed :SIGNED-INTEGER);  ( millisecs for compressing 320x240 on base mac II) (0 if unknown) 
  230.    (decompressionSpeed :SIGNED-INTEGER);  ( millisecs for decompressing 320x240 on mac II)(0 if unknown) 
  231.    (compressionLevel :CHARACTER);  measure (1-255) of compression level of this codec (0 if unknown) 
  232.    (resvd :CHARACTER)           ;  pad 
  233.    (minimumHeight :SIGNED-INTEGER);  minimum height of image (block size) 
  234.    (minimumWidth :SIGNED-INTEGER);  minimum width of image (block size) 
  235.    (decompressPipelineLatency :SIGNED-INTEGER);  in milliseconds ( for asynchronous codecs ) 
  236.    (compressPipelineLatency :SIGNED-INTEGER);  in milliseconds ( for asynchronous codecs ) 
  237.    (privateData :SIGNED-LONG)
  238.    )
  239.  
  240. ;  Table used for fast dithering. 
  241. (def-mactype :DTABPTR (find-mactype :POINTER))
  242. (def-mactype :DTABHANDLE (find-mactype :HANDLE))
  243. (defrecord (DitherTable :handle) 
  244.    (tag :SIGNED-LONG)
  245.    (seed :SIGNED-LONG)
  246.    (reserved :SIGNED-LONG)
  247.    (data (:ARRAY :CHARACTER 1))
  248.    )
  249.  
  250. ;  Name list returned by GetCodecNameList. 
  251. (defrecord CodecNameSpec 
  252.    (codec (:POINTER :COMPONENTRECORD))
  253.    (cType :OSTYPE)
  254.    (typeName (:ARRAY :CHARACTER 32))
  255.    (name :HANDLE)
  256.    )
  257.  
  258. (def-mactype :CODECNAMESPECLISTPTR (find-mactype :POINTER))
  259. (defrecord CodecNameSpecList 
  260.    (count :SIGNED-INTEGER)
  261.    (list (:ARRAY :CODECNAMESPEC 1))
  262.    )
  263.  
  264. ;   Matrix stuff  
  265. (def-mactype :MATRIXRECORDPTR (find-mactype :POINTER))
  266. (defrecord MatrixRecord 
  267.    (matrix (:ARRAY :SIGNED-LONG 3 3))
  268.    )
  269.  
  270. (defrecord FixedPoint 
  271.    (x :SIGNED-LONG)
  272.    (y :SIGNED-LONG)
  273.    )
  274.  
  275. (defrecord FixedRect 
  276.    (left :SIGNED-LONG)
  277.    (top :SIGNED-LONG)
  278.    (right :SIGNED-LONG)
  279.    (bottom :SIGNED-LONG)
  280.    )
  281.  
  282.  
  283. (deftrap _CODECMANAGERVERSION ((VERSION (:POINTER :SIGNED-LONG)))
  284.    (:STACK :SIGNED-INTEGER)
  285.    (:STACK-TRAP #xAAA3 :D0 0 VERSION))
  286.  
  287. (deftrap _GETCODECNAMELIST ((LIST (:POINTER (:POINTER :CODECNAMESPECLIST))) (SHOWALL :SIGNED-INTEGER))
  288.    (:STACK :SIGNED-INTEGER)
  289.    (:STACK-TRAP #xAAA3 :D0 1 LIST SHOWALL))
  290.  
  291. (deftrap _DISPOSECODECNAMELIST ((LIST (:POINTER :CODECNAMESPECLIST)))
  292.    (:STACK :SIGNED-INTEGER)
  293.    (:STACK-TRAP #xAAA3 :D0 15 LIST))
  294.  
  295. (deftrap _GETCODECINFO ((INFO (:POINTER :CODECINFO)) (CTYPE :OSTYPE) (CODEC (:POINTER :COMPONENTRECORD)))
  296.    (:STACK :SIGNED-INTEGER)
  297.    (:STACK-TRAP #xAAA3 :D0 3 INFO CTYPE CODEC))
  298.  
  299. (deftrap _GETMAXCOMPRESSIONSIZE ((SRC (:HANDLE :PIXMAP)) (SRCRECT :RECT) (COLORDEPTH :SIGNED-INTEGER) (QUALITY :SIGNED-LONG) (CTYPE :OSTYPE) (CODEC (:POINTER :COMPONENTRECORD)) (SIZE (:POINTER :SIGNED-LONG)))
  300.    (:STACK :SIGNED-INTEGER)
  301.    (:STACK-TRAP #xAAA3 :D0 4 SRC SRCRECT COLORDEPTH QUALITY CTYPE CODEC SIZE))
  302.  
  303. (deftrap _GETCOMPRESSIONTIME ((SRC (:HANDLE :PIXMAP)) (SRCRECT :RECT) (COLORDEPTH :SIGNED-INTEGER) (CTYPE :OSTYPE) (CODEC (:POINTER :COMPONENTRECORD)) (SPATIALQUALITY (:POINTER :SIGNED-LONG)) (TEMPORALQUALITY (:POINTER :SIGNED-LONG)) (COMPRESSTIME (:POINTER :SIGNED-LONG)))
  304.    (:STACK :SIGNED-INTEGER)
  305.    (:STACK-TRAP #xAAA3 :D0 5 SRC SRCRECT COLORDEPTH CTYPE CODEC SPATIALQUALITY TEMPORALQUALITY COMPRESSTIME))
  306.  
  307. (deftrap _COMPRESSIMAGE ((SRC (:HANDLE :PIXMAP)) (SRCRECT :RECT) (QUALITY :SIGNED-LONG) (CTYPE :OSTYPE) (DESC (:HANDLE :IMAGEDESCRIPTION)) (DATA :POINTER))
  308.    (:STACK :SIGNED-INTEGER)
  309.    (:STACK-TRAP #xAAA3 :D0 6 SRC SRCRECT QUALITY CTYPE DESC DATA))
  310.  
  311. (deftrap _FCOMPRESSIMAGE ((SRC (:HANDLE :PIXMAP)) (SRCRECT :RECT) (COLORDEPTH :SIGNED-INTEGER) (QUALITY :SIGNED-LONG) (CTYPE :OSTYPE) (CODEC (:POINTER :COMPONENTRECORD)) (CLUT (:HANDLE :COLORTABLE)) (FLAGS :SIGNED-INTEGER) (BUFFERSIZE :SIGNED-LONG) (FLUSHPROC (:POINTER :FLUSHPROCRECORD)) (PROGRESSPROC (:POINTER :PROGRESSPROCRECORD)) (DESC (:HANDLE :IMAGEDESCRIPTION)) (DATA :POINTER))
  312.    (:STACK :SIGNED-INTEGER)
  313.    (:STACK-TRAP #xAAA3 :D0 7 SRC SRCRECT COLORDEPTH QUALITY CTYPE CODEC CLUT FLAGS BUFFERSIZE FLUSHPROC PROGRESSPROC DESC DATA))
  314.  
  315. (deftrap _DECOMPRESSIMAGE ((DATA :POINTER) (DESC (:HANDLE :IMAGEDESCRIPTION)) (DST (:HANDLE :PIXMAP)) (SRCRECT :RECT) (DSTRECT :RECT) (MODE :SIGNED-INTEGER) (MASK (:HANDLE :REGION)))
  316.    (:STACK :SIGNED-INTEGER)
  317.    (:STACK-TRAP #xAAA3 :D0 8 DATA DESC DST SRCRECT DSTRECT MODE MASK))
  318.  
  319. (deftrap _FDECOMPRESSIMAGE ((DATA :POINTER) (DESC (:HANDLE :IMAGEDESCRIPTION)) (DST (:HANDLE :PIXMAP)) (SRCRECT :RECT) (MATRIX (:POINTER :MATRIXRECORD)) (MODE :SIGNED-INTEGER) (MASK (:HANDLE :REGION)) (MATTE (:HANDLE :PIXMAP)) (MATTERECT :RECT) (ACCURACY :SIGNED-LONG) (CODEC (:POINTER :COMPONENTRECORD)) (BUFFERSIZE :SIGNED-LONG) (DATAPROC (:POINTER :DATAPROCRECORD)) (PROGRESSPROC (:POINTER :PROGRESSPROCRECORD)))
  320.    (:STACK :SIGNED-INTEGER)
  321.    (:STACK-TRAP #xAAA3 :D0 9 DATA DESC DST SRCRECT MATRIX MODE MASK MATTE MATTERECT ACCURACY CODEC BUFFERSIZE DATAPROC PROGRESSPROC))
  322.  
  323. (deftrap _COMPRESSSEQUENCEBEGIN ((SEQID (:POINTER :SIGNED-LONG)) (SRC (:HANDLE :PIXMAP)) (PREV (:HANDLE :PIXMAP)) (SRCRECT :RECT) (PREVRECT :RECT) (COLORDEPTH :SIGNED-INTEGER) (CTYPE :OSTYPE) (CODEC (:POINTER :COMPONENTRECORD)) (SPATIALQUALITY :SIGNED-LONG) (TEMPORALQUALITY :SIGNED-LONG) (KEYFRAMERATE :SIGNED-LONG) (CLUT (:HANDLE :COLORTABLE)) (FLAGS :SIGNED-INTEGER) (DESC (:HANDLE :IMAGEDESCRIPTION)))
  324.    (:STACK :SIGNED-INTEGER)
  325.    (:STACK-TRAP #xAAA3 :D0 10 SEQID SRC PREV SRCRECT PREVRECT COLORDEPTH CTYPE CODEC SPATIALQUALITY TEMPORALQUALITY KEYFRAMERATE CLUT FLAGS DESC))
  326.  
  327. (deftrap _COMPRESSSEQUENCEFRAME ((SEQID :SIGNED-LONG) (SRC (:HANDLE :PIXMAP)) (SRCRECT :RECT) (FLAGS :SIGNED-INTEGER) (DATA :POINTER) (DATASIZE (:POINTER :SIGNED-LONG)) (SIMILARITY (:POINTER :CHARACTER)) (ASYNCCOMPLETIONPROC (:POINTER :COMPLETIONPROCRECORD)))
  328.    (:STACK :SIGNED-INTEGER)
  329.    (:STACK-TRAP #xAAA3 :D0 11 SEQID SRC SRCRECT FLAGS DATA DATASIZE SIMILARITY ASYNCCOMPLETIONPROC))
  330.  
  331. (deftrap _DECOMPRESSSEQUENCEBEGIN ((SEQID (:POINTER :SIGNED-LONG)) (DESC (:HANDLE :IMAGEDESCRIPTION)) (PORT (:POINTER :CGRAFPORT)) (GDH (:HANDLE :GDEVICE)) (SRCRECT :RECT) (MATRIX (:POINTER :MATRIXRECORD)) (MODE :SIGNED-INTEGER) (MASK (:HANDLE :REGION)) (FLAGS :SIGNED-INTEGER) (ACCURACY :SIGNED-LONG) (CODEC (:POINTER :COMPONENTRECORD)))
  332.    (:STACK :SIGNED-INTEGER)
  333.    (:STACK-TRAP #xAAA3 :D0 13 SEQID DESC PORT GDH SRCRECT MATRIX MODE MASK FLAGS ACCURACY CODEC))
  334.  
  335. (deftrap _DECOMPRESSSEQUENCEFRAME ((SEQID :SIGNED-LONG) (DATA :POINTER) (INFLAGS :SIGNED-INTEGER) (OUTFLAGS (:POINTER :SIGNED-INTEGER)) (ASYNCCOMPLETIONPROC (:POINTER :COMPLETIONPROCRECORD)))
  336.    (:STACK :SIGNED-INTEGER)
  337.    (:STACK-TRAP #xAAA3 :D0 14 SEQID DATA INFLAGS OUTFLAGS ASYNCCOMPLETIONPROC))
  338.  
  339. (deftrap _SETDSEQUENCEMATRIX ((SEQID :SIGNED-LONG) (MATRIX (:POINTER :MATRIXRECORD)))
  340.    (:STACK :SIGNED-INTEGER)
  341.    (:STACK-TRAP #xAAA3 :D0 16 SEQID MATRIX))
  342.  
  343. (deftrap _SETDSEQUENCEMATTE ((SEQID :SIGNED-LONG) (MATTE (:HANDLE :PIXMAP)) (MATTERECT :RECT))
  344.    (:STACK :SIGNED-INTEGER)
  345.    (:STACK-TRAP #xAAA3 :D0 17 SEQID MATTE MATTERECT))
  346.  
  347. (deftrap _SETDSEQUENCEMASK ((SEQID :SIGNED-LONG) (MASK (:HANDLE :REGION)))
  348.    (:STACK :SIGNED-INTEGER)
  349.    (:STACK-TRAP #xAAA3 :D0 18 SEQID MASK))
  350.  
  351. (deftrap _SETDSEQUENCETRANSFERMODE ((SEQID :SIGNED-LONG) (MODE :SIGNED-INTEGER) (OPCOLOR :RGBCOLOR))
  352.    (:STACK :SIGNED-INTEGER)
  353.    (:STACK-TRAP #xAAA3 :D0 19 SEQID MODE OPCOLOR))
  354.  
  355. (deftrap _SETDSEQUENCEDATAPROC ((SEQID :SIGNED-LONG) (DATAPROC (:POINTER :DATAPROCRECORD)) (BUFFERSIZE :SIGNED-LONG))
  356.    (:STACK :SIGNED-INTEGER)
  357.    (:STACK-TRAP #xAAA3 :D0 20 SEQID DATAPROC BUFFERSIZE))
  358.  
  359. (deftrap _SETDSEQUENCEACCURACY ((SEQID :SIGNED-LONG) (ACCURACY :SIGNED-LONG))
  360.    (:STACK :SIGNED-INTEGER)
  361.    (:STACK-TRAP #xAAA3 :D0 52 SEQID ACCURACY))
  362.  
  363. (deftrap _SETDSEQUENCESRCRECT ((SEQID :SIGNED-LONG) (SRCRECT :RECT))
  364.    (:STACK :SIGNED-INTEGER)
  365.    (:STACK-TRAP #xAAA3 :D0 53 SEQID SRCRECT))
  366.  
  367. (deftrap _GETDSEQUENCEIMAGEBUFFER ((SEQID :SIGNED-LONG) (GWORLD (:POINTER (:POINTER :CGRAFPORT))))
  368.    (:STACK :SIGNED-INTEGER)
  369.    (:STACK-TRAP #xAAA3 :D0 21 SEQID GWORLD))
  370.  
  371. (deftrap _GETDSEQUENCESCREENBUFFER ((SEQID :SIGNED-LONG) (GWORLD (:POINTER (:POINTER :CGRAFPORT))))
  372.    (:STACK :SIGNED-INTEGER)
  373.    (:STACK-TRAP #xAAA3 :D0 22 SEQID GWORLD))
  374.  
  375. (deftrap _SETCSEQUENCEQUALITY ((SEQID :SIGNED-LONG) (SPATIALQUALITY :SIGNED-LONG) (TEMPORALQUALITY :SIGNED-LONG))
  376.    (:STACK :SIGNED-INTEGER)
  377.    (:STACK-TRAP #xAAA3 :D0 23 SEQID SPATIALQUALITY TEMPORALQUALITY))
  378.  
  379. (deftrap _SETCSEQUENCEPREV ((SEQID :SIGNED-LONG) (PREV (:HANDLE :PIXMAP)) (PREVRECT :RECT))
  380.    (:STACK :SIGNED-INTEGER)
  381.    (:STACK-TRAP #xAAA3 :D0 24 SEQID PREV PREVRECT))
  382.  
  383. (deftrap _SETCSEQUENCEFLUSHPROC ((SEQID :SIGNED-LONG) (FLUSHPROC (:POINTER :FLUSHPROCRECORD)) (BUFFERSIZE :SIGNED-LONG))
  384.    (:STACK :SIGNED-INTEGER)
  385.    (:STACK-TRAP #xAAA3 :D0 51 SEQID FLUSHPROC BUFFERSIZE))
  386.  
  387. (deftrap _SETCSEQUENCEKEYFRAMERATE ((SEQID :SIGNED-LONG) (KEYFRAMERATE :SIGNED-LONG))
  388.    (:STACK :SIGNED-INTEGER)
  389.    (:STACK-TRAP #xAAA3 :D0 54 SEQID KEYFRAMERATE))
  390.  
  391. (deftrap _GETCSEQUENCEPREVBUFFER ((SEQID :SIGNED-LONG) (GWORLD (:POINTER (:POINTER :CGRAFPORT))))
  392.    (:STACK :SIGNED-INTEGER)
  393.    (:STACK-TRAP #xAAA3 :D0 25 SEQID GWORLD))
  394.  
  395. (deftrap _CDSEQUENCEBUSY ((SEQID :SIGNED-LONG))
  396.    (:STACK :SIGNED-INTEGER)
  397.    (:STACK-TRAP #xAAA3 :D0 26 SEQID))
  398.  
  399. (deftrap _CDSEQUENCEEND ((SEQID :SIGNED-LONG))
  400.    (:STACK :SIGNED-INTEGER)
  401.    (:STACK-TRAP #xAAA3 :D0 27 SEQID))
  402.  
  403. (deftrap _GETCOMPRESSEDIMAGESIZE ((DESC (:HANDLE :IMAGEDESCRIPTION)) (DATA :POINTER) (BUFFERSIZE :SIGNED-LONG) (DATAPROC (:POINTER :DATAPROCRECORD)) (DATASIZE (:POINTER :SIGNED-LONG)))
  404.    (:STACK :SIGNED-INTEGER)
  405.    (:STACK-TRAP #xAAA3 :D0 28 DESC DATA BUFFERSIZE DATAPROC DATASIZE))
  406.  
  407. (deftrap _GETSIMILARITY ((SRC (:HANDLE :PIXMAP)) (SRCRECT :RECT) (DESC (:HANDLE :IMAGEDESCRIPTION)) (DATA :POINTER) (SIMILARITY (:POINTER :SIGNED-LONG)))
  408.    (:STACK :SIGNED-INTEGER)
  409.    (:STACK-TRAP #xAAA3 :D0 29 SRC SRCRECT DESC DATA SIMILARITY))
  410.  
  411. (deftrap _GETIMAGEDESCRIPTIONCTABLE ((DESC (:HANDLE :IMAGEDESCRIPTION)) (CTABLE (:POINTER (:HANDLE :COLORTABLE))))
  412.    (:STACK :SIGNED-INTEGER)
  413.    (:STACK-TRAP #xAAA3 :D0 30 DESC CTABLE))
  414.  
  415. (deftrap _SETIMAGEDESCRIPTIONCTABLE ((DESC (:HANDLE :IMAGEDESCRIPTION)) (CTABLE (:HANDLE :COLORTABLE)))
  416.    (:STACK :SIGNED-INTEGER)
  417.    (:STACK-TRAP #xAAA3 :D0 31 DESC CTABLE))
  418.  
  419. (deftrap _GETIMAGEDESCRIPTIONEXTENSION ((DESC (:HANDLE :IMAGEDESCRIPTION)) (EXTENSION (:POINTER :HANDLE)) (IDTYPE :SIGNED-LONG) (INDEX :SIGNED-LONG))
  420.    (:STACK :SIGNED-INTEGER)
  421.    (:STACK-TRAP #xAAA3 :D0 32 DESC EXTENSION IDTYPE INDEX))
  422.  
  423. (deftrap _SETIMAGEDESCRIPTIONEXTENSION ((DESC (:HANDLE :IMAGEDESCRIPTION)) (EXTENSION :HANDLE) (IDTYPE :SIGNED-LONG))
  424.    (:STACK :SIGNED-INTEGER)
  425.    (:STACK-TRAP #xAAA3 :D0 33 DESC EXTENSION IDTYPE))
  426.  
  427. (deftrap _FINDCODEC ((CTYPE :OSTYPE) (SPECCODEC (:POINTER :COMPONENTRECORD)) (COMPRESSOR (:POINTER (:POINTER :COMPONENTRECORD))) (DECOMPRESSOR (:POINTER (:POINTER :COMPONENTRECORD))))
  428.    (:STACK :SIGNED-INTEGER)
  429.    (:STACK-TRAP #xAAA3 :D0 35 CTYPE SPECCODEC COMPRESSOR DECOMPRESSOR))
  430.  
  431. (deftrap _COMPRESSPICTURE ((SRCPICTURE (:HANDLE :PICTURE)) (DSTPICTURE (:HANDLE :PICTURE)) (QUALITY :SIGNED-LONG) (CTYPE :OSTYPE))
  432.    (:STACK :SIGNED-INTEGER)
  433.    (:STACK-TRAP #xAAA3 :D0 36 SRCPICTURE DSTPICTURE QUALITY CTYPE))
  434.  
  435. (deftrap _FCOMPRESSPICTURE ((SRCPICTURE (:HANDLE :PICTURE)) (DSTPICTURE (:HANDLE :PICTURE)) (COLORDEPTH :SIGNED-INTEGER) (CLUT (:HANDLE :COLORTABLE)) (QUALITY :SIGNED-LONG) (DODITHER :SIGNED-INTEGER) (COMPRESSAGAIN :SIGNED-INTEGER) (PROGRESSPROC (:POINTER :PROGRESSPROCRECORD)) (CTYPE :OSTYPE) (CODEC (:POINTER :COMPONENTRECORD)))
  436.    (:STACK :SIGNED-INTEGER)
  437.    (:STACK-TRAP #xAAA3 :D0 37 SRCPICTURE DSTPICTURE COLORDEPTH CLUT QUALITY DODITHER COMPRESSAGAIN PROGRESSPROC CTYPE CODEC))
  438.  
  439. (deftrap _COMPRESSPICTUREFILE ((SRCREFNUM :SIGNED-INTEGER) (DSTREFNUM :SIGNED-INTEGER) (QUALITY :SIGNED-LONG) (CTYPE :OSTYPE))
  440.    (:STACK :SIGNED-INTEGER)
  441.    (:STACK-TRAP #xAAA3 :D0 38 SRCREFNUM DSTREFNUM QUALITY CTYPE))
  442.  
  443. (deftrap _FCOMPRESSPICTUREFILE ((SRCREFNUM :SIGNED-INTEGER) (DSTREFNUM :SIGNED-INTEGER) (COLORDEPTH :SIGNED-INTEGER) (CLUT (:HANDLE :COLORTABLE)) (QUALITY :SIGNED-LONG) (DODITHER :SIGNED-INTEGER) (COMPRESSAGAIN :SIGNED-INTEGER) (PROGRESSPROC (:POINTER :PROGRESSPROCRECORD)) (CTYPE :OSTYPE) (CODEC (:POINTER :COMPONENTRECORD)))
  444.    (:STACK :SIGNED-INTEGER)
  445.    (:STACK-TRAP #xAAA3 :D0 39 SRCREFNUM DSTREFNUM COLORDEPTH CLUT QUALITY DODITHER COMPRESSAGAIN PROGRESSPROC CTYPE CODEC))
  446.  
  447. (deftrap _GETPICTUREFILEHEADER ((REFNUM :SIGNED-INTEGER) (FRAME (:POINTER :RECT)) (HEADER (:POINTER :OPENCPICPARAMS)))
  448.    (:STACK :SIGNED-INTEGER)
  449.    (:STACK-TRAP #xAAA3 :D0 40 REFNUM FRAME HEADER))
  450.  
  451. (deftrap _DRAWPICTUREFILE ((REFNUM :SIGNED-INTEGER) (FRAME :RECT) (PROGRESSPROC (:POINTER :PROGRESSPROCRECORD)))
  452.    (:STACK :SIGNED-INTEGER)
  453.    (:STACK-TRAP #xAAA3 :D0 41 REFNUM FRAME PROGRESSPROC))
  454.  
  455. (deftrap _DRAWTRIMMEDPICTURE ((SRCPICTURE (:HANDLE :PICTURE)) (FRAME :RECT) (TRIMMASK (:HANDLE :REGION)) (DODITHER :SIGNED-INTEGER) (PROGRESSPROC (:POINTER :PROGRESSPROCRECORD)))
  456.    (:STACK :SIGNED-INTEGER)
  457.    (:STACK-TRAP #xAAA3 :D0 46 SRCPICTURE FRAME TRIMMASK DODITHER PROGRESSPROC))
  458.  
  459. (deftrap _DRAWTRIMMEDPICTUREFILE ((SRCREFNUM :SIGNED-INTEGER) (FRAME :RECT) (TRIMMASK (:HANDLE :REGION)) (DODITHER :SIGNED-INTEGER) (PROGRESSPROC (:POINTER :PROGRESSPROCRECORD)))
  460.    (:STACK :SIGNED-INTEGER)
  461.    (:STACK-TRAP #xAAA3 :D0 47 SRCREFNUM FRAME TRIMMASK DODITHER PROGRESSPROC))
  462.  
  463. (deftrap _MAKETHUMBNAILFROMPICTURE ((PICTURE (:HANDLE :PICTURE)) (COLORDEPTH :SIGNED-INTEGER) (THUMBNAIL (:HANDLE :PICTURE)) (PROGRESSPROC (:POINTER :PROGRESSPROCRECORD)))
  464.    (:STACK :SIGNED-INTEGER)
  465.    (:STACK-TRAP #xAAA3 :D0 42 PICTURE COLORDEPTH THUMBNAIL PROGRESSPROC))
  466.  
  467. (deftrap _MAKETHUMBNAILFROMPICTUREFILE ((REFNUM :SIGNED-INTEGER) (COLORDEPTH :SIGNED-INTEGER) (THUMBNAIL (:HANDLE :PICTURE)) (PROGRESSPROC (:POINTER :PROGRESSPROCRECORD)))
  468.    (:STACK :SIGNED-INTEGER)
  469.    (:STACK-TRAP #xAAA3 :D0 43 REFNUM COLORDEPTH THUMBNAIL PROGRESSPROC))
  470.  
  471. (deftrap _MAKETHUMBNAILFROMPIXMAP ((SRC (:HANDLE :PIXMAP)) (SRCRECT :RECT) (COLORDEPTH :SIGNED-INTEGER) (THUMBNAIL (:HANDLE :PICTURE)) (PROGRESSPROC (:POINTER :PROGRESSPROCRECORD)))
  472.    (:STACK :SIGNED-INTEGER)
  473.    (:STACK-TRAP #xAAA3 :D0 44 SRC SRCRECT COLORDEPTH THUMBNAIL PROGRESSPROC))
  474.  
  475. (deftrap _TRIMIMAGE ((DESC (:HANDLE :IMAGEDESCRIPTION)) (INDATA :POINTER) (INBUFFERSIZE :SIGNED-LONG) (DATAPROC (:POINTER :DATAPROCRECORD)) (OUTDATA :POINTER) (OUTBUFFERSIZE :SIGNED-LONG) (FLUSHPROC (:POINTER :FLUSHPROCRECORD)) (TRIMRECT (:POINTER :RECT)) (PROGRESSPROC (:POINTER :PROGRESSPROCRECORD)))
  476.    (:STACK :SIGNED-INTEGER)
  477.    (:STACK-TRAP #xAAA3 :D0 45 DESC INDATA INBUFFERSIZE DATAPROC OUTDATA OUTBUFFERSIZE FLUSHPROC TRIMRECT PROGRESSPROC))
  478.  
  479. (deftrap _CONVERTIMAGE ((SRCDD (:HANDLE :IMAGEDESCRIPTION)) (SRCDATA :POINTER) (COLORDEPTH :SIGNED-INTEGER) (CLUT (:HANDLE :COLORTABLE)) (ACCURACY :SIGNED-LONG) (QUALITY :SIGNED-LONG) (CTYPE :OSTYPE) (CODEC (:POINTER :COMPONENTRECORD)) (DSTDD (:HANDLE :IMAGEDESCRIPTION)) (DSTDATA :POINTER))
  480.    (:STACK :SIGNED-INTEGER)
  481.    (:STACK-TRAP #xAAA3 :D0 48 SRCDD SRCDATA COLORDEPTH CLUT ACCURACY QUALITY CTYPE CODEC DSTDD DSTDATA))
  482.  
  483. (deftrap _MAKEDITHERTABLE ((GDEV (:HANDLE :GDEVICE)) (DITHERTABLE (:POINTER (:HANDLE :DITHERTABLE))))
  484.    (:STACK :SIGNED-INTEGER)
  485.    (:STACK-TRAP #xAAA3 :D0 49 GDEV DITHERTABLE))
  486.  
  487. (deftrap _DISPOSEDITHERTABLE ((DITHERTABLE (:HANDLE :DITHERTABLE)))
  488.    (:STACK :SIGNED-INTEGER)
  489.    (:STACK-TRAP #xAAA3 :D0 50 DITHERTABLE))
  490.  
  491. (deftrap _STDPIX ((SRC (:POINTER :PIXMAP)) (SRCRECT :RECT) (MATRIX (:POINTER :MATRIXRECORD)) (MODE :SIGNED-INTEGER) (MASK (:HANDLE :REGION)) (MATTE (:POINTER :PIXMAP)) (MATTERECT :RECT) (FLAGS :SIGNED-INTEGER))
  492.    (:STACK :SIGNED-INTEGER)
  493.    (:STACK-TRAP #xAAA3 :D0 12 SRC SRCRECT MATRIX MODE MASK MATTE MATTERECT FLAGS))
  494.  
  495.  
  496. (deftrap _GETCOMPRESSEDPIXMAPINFO ((PIX (:POINTER :PIXMAP)) (DESC (:POINTER (:HANDLE :IMAGEDESCRIPTION))) (DATA (:POINTER :POINTER)) (BUFFERSIZE (:POINTER :SIGNED-LONG)) (DATAPROC (:POINTER :DATAPROCRECORD)) (PROGRESSPROC (:POINTER :PROGRESSPROCRECORD)))
  497.    (:STACK :SIGNED-INTEGER)
  498.    (:STACK-TRAP #xAAA3 :D0 55 PIX DESC DATA BUFFERSIZE DATAPROC PROGRESSPROC))
  499.  
  500. (deftrap _SETCOMPRESSEDPIXMAPINFO ((PIX (:POINTER :PIXMAP)) (DESC (:HANDLE :IMAGEDESCRIPTION)) (DATA :POINTER) (BUFFERSIZE :SIGNED-LONG) (DATAPROC (:POINTER :DATAPROCRECORD)) (PROGRESSPROC (:POINTER :PROGRESSPROCRECORD)))
  501.    (:STACK :SIGNED-INTEGER)
  502.    (:STACK-TRAP #xAAA3 :D0 56 PIX DESC DATA BUFFERSIZE DATAPROC PROGRESSPROC))
  503.  
  504. (defconstant $identityMatrixType #X0);  result if matrix is identity 
  505. (defconstant $translateMatrixType #X1);  result if matrix translates 
  506. (defconstant $scaleMatrixType #X2);  result if matrix scales 
  507. (defconstant $scaleTranslateMatrixType #X3);  result if matrix scales and translates 
  508. (defconstant $linearMatrixType #X4);  result if matrix is general 2 x 2 
  509. (defconstant $linearTranslateMatrixType #X5);  result if matrix is general 2 x 2 and translates 
  510. (defconstant $perspectiveMatrixType #X6);  result if matrix is general 3 x 3 
  511.  
  512. (def-mactype :MATRIXFLAGS (find-mactype :CHARACTER))
  513.  
  514.  
  515. (deftrap _GETMATRIXTYPE ((M :MATRIXRECORD))
  516.    (:STACK :SIGNED-INTEGER)
  517.    (:STACK-TRAP #xABC2 :D0 20 M))
  518.  
  519. (deftrap _COPYMATRIX ((M1 :MATRIXRECORD) (M2 (:POINTER :MATRIXRECORD)))
  520.    NIL
  521.    (:STACK-TRAP #xABC2 :D0 32 M1 M2))
  522.  
  523. (deftrap _EQUALMATRIX ((M1 :MATRIXRECORD) (M2 :MATRIXRECORD))
  524.    (:STACK :BOOLEAN)
  525.    (:STACK-TRAP #xABC2 :D0 33 M1 M2))
  526.  
  527. (deftrap _SETIDENTITYMATRIX ((MATRIX (:POINTER :MATRIXRECORD)))
  528.    NIL
  529.    (:STACK-TRAP #xABC2 :D0 21 MATRIX))
  530.  
  531. (deftrap _TRANSLATEMATRIX ((M (:POINTER :MATRIXRECORD)) (DELTAH :SIGNED-LONG) (DELTAV :SIGNED-LONG))
  532.    NIL
  533.    (:STACK-TRAP #xABC2 :D0 25 M DELTAH DELTAV))
  534.  
  535. (deftrap _ROTATEMATRIX ((M (:POINTER :MATRIXRECORD)) (DEGREES :SIGNED-LONG) (ABOUTX :SIGNED-LONG) (ABOUTY :SIGNED-LONG))
  536.    NIL
  537.    (:STACK-TRAP #xABC2 :D0 22 M DEGREES ABOUTX ABOUTY))
  538.  
  539. (deftrap _SCALEMATRIX ((M (:POINTER :MATRIXRECORD)) (SCALEX :SIGNED-LONG) (SCALEY :SIGNED-LONG) (ABOUTX :SIGNED-LONG) (ABOUTY :SIGNED-LONG))
  540.    NIL
  541.    (:STACK-TRAP #xABC2 :D0 23 M SCALEX SCALEY ABOUTX ABOUTY))
  542.  
  543. (deftrap _SKEWMATRIX ((M (:POINTER :MATRIXRECORD)) (SKEWX :SIGNED-LONG) (SKEWY :SIGNED-LONG) (ABOUTX :SIGNED-LONG) (ABOUTY :SIGNED-LONG))
  544.    NIL
  545.    (:STACK-TRAP #xABC2 :D0 24 M SKEWX SKEWY ABOUTX ABOUTY))
  546.  
  547. (deftrap _TRANSFORMFIXEDPOINTS ((M :MATRIXRECORD) (FPT (:POINTER :FIXEDPOINT)) (COUNT :SIGNED-LONG))
  548.    (:STACK :SIGNED-INTEGER)
  549.    (:STACK-TRAP #xABC2 :D0 34 M FPT COUNT))
  550.  
  551. (deftrap _TRANSFORMPOINTS ((MP :MATRIXRECORD) (PT1 (:POINTER :POINT)) (COUNT :SIGNED-LONG))
  552.    (:STACK :SIGNED-INTEGER)
  553.    (:STACK-TRAP #xABC2 :D0 35 MP PT1 COUNT))
  554.  
  555. (deftrap _TRANSFORMFIXEDRECT ((M :MATRIXRECORD) (FR (:POINTER :FIXEDRECT)) (FPP (:POINTER :FIXEDPOINT)))
  556.    (:STACK :BOOLEAN)
  557.    (:STACK-TRAP #xABC2 :D0 36 M FR FPP))
  558.  
  559. (deftrap _TRANSFORMRECT ((M :MATRIXRECORD) (R (:POINTER :RECT)) (FPP (:POINTER :FIXEDPOINT)))
  560.    (:STACK :BOOLEAN)
  561.    (:STACK-TRAP #xABC2 :D0 37 M R FPP))
  562.  
  563. (deftrap _TRANSFORMRGN ((MP :MATRIXRECORD) (R (:HANDLE :REGION)))
  564.    (:STACK :SIGNED-INTEGER)
  565.    (:STACK-TRAP #xAAA3 :D0 57 MP R))
  566.  
  567. (deftrap _INVERSEMATRIX ((M :MATRIXRECORD) (IM (:POINTER :MATRIXRECORD)))
  568.    (:STACK :BOOLEAN)
  569.    (:STACK-TRAP #xABC2 :D0 28 M IM))
  570.  
  571. (deftrap _CONCATMATRIX ((A :MATRIXRECORD) (B (:POINTER :MATRIXRECORD)))
  572.    NIL
  573.    (:STACK-TRAP #xABC2 :D0 27 A B))
  574.  
  575. (deftrap _RECTMATRIX ((MATRIX (:POINTER :MATRIXRECORD)) (SRCRECT :RECT) (DSTRECT :RECT))
  576.    NIL
  577.    (:STACK-TRAP #xABC2 :D0 30 MATRIX SRCRECT DSTRECT))
  578.  
  579. (deftrap _MAPMATRIX ((MATRIX (:POINTER :MATRIXRECORD)) (FROMRECT :RECT) (TORECT :RECT))
  580.    NIL
  581.    (:STACK-TRAP #xABC2 :D0 29 MATRIX FROMRECT TORECT))
  582.  
  583. ;    Standard Preview  
  584.  
  585.  
  586. (deftrap _SFGETFILEPREVIEW ((WHERE :POINT) (PROMPT (:STRING 255)) (FILEFILTER :POINTER) (NUMTYPES :SIGNED-INTEGER) (TYPELIST :SFTYPELIST) (DLGHOOK :POINTER) (REPLY (:POINTER :SFREPLY)))
  587.    NIL
  588.    (:STACK-TRAP #xAAA3 :D0 65 WHERE PROMPT FILEFILTER NUMTYPES TYPELIST DLGHOOK REPLY))
  589.  
  590.  
  591. (deftrap _SFPGETFILEPREVIEW ((WHERE :POINT) (PROMPT (:STRING 255)) (FILEFILTER :POINTER) (NUMTYPES :SIGNED-INTEGER) (TYPELIST :SFTYPELIST) (DLGHOOK :POINTER) (REPLY (:POINTER :SFREPLY)) (DLGID :SIGNED-INTEGER) (FILTERPROC :POINTER))
  592.    NIL
  593.    (:STACK-TRAP #xAAA3 :D0 66 WHERE PROMPT FILEFILTER NUMTYPES TYPELIST DLGHOOK REPLY DLGID FILTERPROC))
  594.  
  595.  
  596. (deftrap _STANDARDGETFILEPREVIEW ((FILEFILTER :POINTER) (NUMTYPES :SIGNED-INTEGER) (TYPELIST :SFTYPELIST) (REPLY (:POINTER :STANDARDFILEREPLY)))
  597.    NIL
  598.    (:STACK-TRAP #xAAA3 :D0 67 FILEFILTER NUMTYPES TYPELIST REPLY))
  599.  
  600.  
  601. (deftrap _CUSTOMGETFILEPREVIEW ((FILEFILTER :POINTER) (NUMTYPES :SIGNED-INTEGER) (TYPELIST :SFTYPELIST) (REPLY (:POINTER :STANDARDFILEREPLY)) (DLGID :SIGNED-INTEGER) (WHERE :POINT) (DLGHOOK :POINTER) (FILTERPROC :POINTER) (ACTIVELIST :POINTER) (ACTIVATEPROC :POINTER) (YOURDATAPTR :POINTER))
  602.    NIL
  603.    (:STACK-TRAP #xAAA3 :D0 68 FILEFILTER NUMTYPES TYPELIST REPLY DLGID WHERE DLGHOOK FILTERPROC ACTIVELIST ACTIVATEPROC YOURDATAPTR))
  604.  
  605.  
  606. (deftrap _MAKEFILEPREVIEW ((RESREFNUM :SIGNED-INTEGER) (PROGRESS (:POINTER :PROGRESSPROCRECORD)))
  607.    (:STACK :SIGNED-INTEGER)
  608.    (:STACK-TRAP #xAAA3 :D0 69 RESREFNUM PROGRESS))
  609.  
  610.  
  611. (deftrap _ADDFILEPREVIEW ((RESREFNUM :SIGNED-INTEGER) (PREVIEWTYPE :OSTYPE) (PREVIEWDATA :HANDLE))
  612.    (:STACK :SIGNED-INTEGER)
  613.    (:STACK-TRAP #xAAA3 :D0 70 RESREFNUM PREVIEWTYPE PREVIEWDATA))
  614.  
  615. (defconstant $sfpItemPreviewAreaUser 11)
  616. (defconstant $sfpItemPreviewStaticText 12)
  617. (defconstant $sfpItemPreviewDividerUser 13)
  618. (defconstant $sfpItemCreatePreviewButton 14)
  619. (defconstant $sfpItemShowPreviewButton 15)
  620.  
  621. (def-mactype :PREVIEWRESOURCEPTR (find-mactype :POINTER))
  622. (def-mactype :PREVIEWRESOURCEHANDLE (find-mactype :HANDLE))
  623. (defrecord (PreviewResourceRecord :handle) 
  624.    (modDate :SIGNED-LONG)
  625.    (version :SIGNED-INTEGER)
  626.    (resType :OSTYPE)
  627.    (resID :SIGNED-INTEGER)
  628.    )
  629.  
  630. ; $ENDC                         ;  UsingImageCompression 
  631.  
  632. ; $IFC NOT UsingIncludes
  633.  
  634. ; $ENDC
  635.  
  636. (export '($SFPITEMSHOWPREVIEWBUTTON $SFPITEMCREATEPREVIEWBUTTON
  637.           $SFPITEMPREVIEWDIVIDERUSER $SFPITEMPREVIEWSTATICTEXT
  638.           $SFPITEMPREVIEWAREAUSER $PERSPECTIVEMATRIXTYPE
  639.           $LINEARTRANSLATEMATRIXTYPE $LINEARMATRIXTYPE
  640.           $SCALETRANSLATEMATRIXTYPE $SCALEMATRIXTYPE $TRANSLATEMATRIXTYPE
  641.           $IDENTITYMATRIXTYPE $CODECPROGRESSCLOSE $CODECPROGRESSUPDATEPERCENT
  642.           $CODECPROGRESSOPEN $CODECCOMPLETIONDEST $CODECCOMPLETIONSOURCE
  643.           $BESTCOMPRESSIONCODEC $BESTFIDELITYCODEC $BESTSPEEDCODEC $ANYCODEC
  644.           $CODECHIGHQUALITY $CODECNORMALQUALITY $CODECLOWQUALITY
  645.           $CODECMINQUALITY $CODECMAXQUALITY $CODECLOSSLESSQUALITY
  646.           $DECOMPRESSORCOMPONENTTYPE $COMPRESSORCOMPONENTTYPE
  647.           $CODECMINIMUMDATASIZE $CODECOPENERR $CODECCONDITIONERR
  648.           $CODECDATAVERSERR $CODECBADDATAERR $CODECWOULDOFFSCREENERR
  649.           $CODECABORTERR $CODECSPOOLERR $CODECIMAGEBUFERR $CODECSCREENBUFERR
  650.           $CODECSIZEERR $CODECUNIMPERR $NOCODECERR $CODECERR
  651.           $CODECFLAGUSEDIMAGEBUFFER $CODECFLAGUSEDNEWIMAGEBUFFER
  652.           $CODECFLAGLIVEGRAB $CODECFLAGONLYSCREENUPDATE $CODECFLAGFORCEKEYFRAME
  653.           $CODECFLAGUPDATEPREVIOUSCOMP $CODECFLAGDONTOFFSCREEN
  654.           $CODECFLAGWASCOMPRESSED $CODECFLAGNOSCREENUPDATE
  655.           $CODECFLAGUPDATEPREVIOUS $CODECFLAGUSESCREENBUFFER
  656.           $CODECFLAGUSEIMAGEBUFFER $CODECINFODOESLOSSLESS $CODECINFOSTORESCLUT
  657.           $CODECINFODEPTH40 $CODECINFODEPTH36 $CODECINFODEPTH34
  658.           $CODECINFODEPTH33 $CODECINFODEPTH24 $CODECINFODEPTH32
  659.           $CODECINFODEPTH16 $CODECINFODEPTH8 $CODECINFODEPTH4 $CODECINFODEPTH2
  660.           $CODECINFODEPTH1 $CODECINFODOESSPOOL $CODECINFODOESRECOMPRESS
  661.           $CODECINFODOESWARP $CODECINFODOESBLEND $CODECINFODOESSKEW
  662.           $CODECINFODOESVERTFLIP $CODECINFODOESHORIZFLIP $CODECINFODOESROTATE
  663.           $CODECINFODOESQUARTER $CODECINFODOESHALF $CODECINFODOESQUAD
  664.           $CODECINFODOESDOUBLE $CODECINFODOESTEMPORAL $CODECINFODOESMASK
  665.           $CODECINFODOESSHRINK $CODECINFODOESSTRETCH $CODECINFODOESDITHER
  666.           $CODECINFODOES32 $CODECINFODOES16 $CODECINFODOES8 $CODECINFODOES4
  667.           $CODECINFODOES2 $CODECINFODOES1 $GESTALTCOMPRESSIONMGR))
  668. (provide-interface 'ImageCompression)